1. Field of the Disclosure
The disclosure generally relates to communication links, and more specifically to systems and methods for efficiently aggregating the resources available in the communication links.
2. Related Art
Link aggregation is a computer networking term that is often used to describe various methods of combining (aggregating) multiple network connections in parallel to increase throughput beyond what a single connection could sustain. In other words, link aggregation is a method of logically bundling two or more physical links to form one logical link. The logical link (“aggregated link”) can be considered to have the sum bandwidth, or a bandwidth close to the sum bandwidth, of the individual links that are bundled. The aggregated link may be considered as a single link by higher-layer protocols (e.g. network layer and above), thus facilitating data transfer at faster rates without the overhead of managing data transfer over separate physical links at the higher-layer protocols. In addition to providing an increased throughout, link aggregation also provides redundancy in case one of the bundled links fails.
Typically, link aggregation is implemented at the logical link control layer/media access control layer, which is formed in layer 2 of the Open System Interconnect (OSI) protocol stack. However, in some instances, it may be possible to implement link aggregation at any of the lowest three layers of the OSI protocol. Examples of link aggregation at layer 1 are power line (e.g. IEEE 1901) and wireless (e.g. IEEE 802.11) network devices that combine multiple frequency bands. Link aggregation at OSI layer 2 (data link layer, e.g. Ethernet frame in LANs or multi-link point-to-point protocol in WANs, Ethernet MAC address) typically occurs across switch ports, which can be either physical ports, or virtual ones managed by an operating system. Further, link aggregation may also be possible at layer 3 in the OSI protocol using round-robin scheduling, or using hash values computed from fields in the packet header, or a combination of these two methods.
Regardless of the layer on which link aggregation is implemented, the goal is the same—to increase throughput beyond what a single connection could sustain. Conventional link aggregation attempts to increase throughput by sequentially distributing a network load across all links. However, communication systems that implement conventional link aggregation suffer from several inherent problems, which can ultimately render these systems highly inefficient. For example, when packets of different sizes are transmitted across the various individual links, the communication system may be subjected to latency issues, because the total transmission will always be delayed by the longer packets. Similarly, when the latency associated with each of the individual links varies, the communication system may again be subjected to latency issues, because the total transmission will always be delayed by the slower links. These problems are compounded when the communication system is implemented over links having variable bandwidths (e.g. DSL, RF, cable). The problem gets even more complex when link aggregation (LAG) networking devices are indirectly connected to one another, (e.g. via Ethernet links to multiple MODEMs where each MODEM converts the traffic from Ethernet to non-Ethernet). In these instances, the bandwidth detected by a networking device within the communication system may not represent the actual bandwidth available across the non-Ethernet links. Therefore, without knowing the actual available bandwidth of the aggregated link, the networking device may be unable to properly distribute the network load across each of the links.
Each of these aforementioned issues prevents conventional link aggregation methods from being able to utilize 100% of the available bandwidth of the aggregated link, thus rendering these conventional methods, and their corresponding communication systems, highly inefficient.
Embodiments of the disclosure will now be described with reference to the accompanying drawings. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the reference number